package com.blog.cmrpersonalblog.dto.base;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 批量操作请求基类
 * 用于批量删除、批量更新状态等操作
 */
@Data
public class BaseBatchRequest {

    /**
     * 操作类型
     * 例如: delete, enable, disable, audit_pass, audit_reject等
     */
    @NotNull(message = "操作类型不能为空")
    private String operation;

    /**
     * 目标ID列表
     */
    @NotEmpty(message = "目标ID列表不能为空")
    private List<Long> ids;

    /**
     * 操作原因/备注（可选）
     */
    private String reason;

    /**
     * 验证ID列表是否有效
     */
    public boolean isValidIds() {
        return ids != null && !ids.isEmpty() && ids.stream().allMatch(id -> id != null && id > 0);
    }

    /**
     * 获取ID数量
     */
    public int getIdCount() {
        return ids != null ? ids.size() : 0;
    }
}

